package org.jeecg.modules.oa.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.google.common.collect.Lists;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * @Description: 打卡表
 * @Author: jeecg-boot
 * @Date:   2019-12-20
 * @Version: V1.0
 */
@Data
@TableName("hr_attendance_management")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="hr_attendance_management对象", description="打卡表")
public class AttendanceManagement {

	@TableId(type = IdType.UUID)
	@ApiModelProperty(value = "id")
	private String id;
	private String userId;
	/** 员工名称 */
	@TableField(exist = false)
	private String userName;
	/**上班打卡时间*/
	private Date clockInTime;
	/**上班打卡头像*/
	private String clockInImg;
	/**下班打卡时间*/
	private Date clockOutTime;
	/**下班打卡头像*/
	private String clockOutImg;
	/**标准工作时间*/
	private Double standardWorkHours;
	/**加班工作时间*/
	private Double workOverHours;
	/**
	 * 工作总时长
	 */
	private Double workHours;

	/**
	 * 上班打卡位置经度坐标
	 */
	private String inLongitude;
	/**
	 * 上班打卡位置纬度坐标
	 */
	private String inLatitude;

	/**
	 * 上班打卡位置
	 */
	private String inPosition;
	/**下班打卡位置经度坐标*/
	private String outLongitude;
	/**
	 * 下班打卡位置纬度坐标
	 */
	private String outLatitude;

	/**
	 * 下班打卡位置
	 */
	private String outPosition;
	/**当天开始时间*/
	@TableField(exist = false)
	private Date todayStart;
	/**当天结束时间*/
	@TableField(exist = false)
	private Date todayEnd;

	/** 考勤状态 */
	private String attendanceType;
	private String delFlag;

	/** 正常 */
	public static final String ATTENDANCE_TYPE_1 = "1";
	/** 迟到 */
	public static final String ATTENDANCE_TYPE_2 = "2";
	/** 早退 */
	public static final String ATTENDANCE_TYPE_3 = "3";
	/** 未打卡 */
	public static final String ATTENDANCE_TYPE_4 = "4";

	/**路由器名称**/
	@TableField(exist = false)
	private String routerName ;
	/**ip**/
	@TableField(exist = false)
	private String  ips ;
	@TableField(exist = false)
	private String attendanceSiteFlag ;



	/**补打卡状态和种类:0:可补上班卡 1:可补下班卡 2:已补上班卡  3:已补下班卡 以外的情况不显示打补卡*/
	@TableField(exist = false)
	private String alterBtnFlg;
	/**是否更新按钮 0:显示更新  以外不显示更新*/
	@TableField(exist = false)
	private String updateBtnFlg;
	/**打卡按钮的控制 0:可点击 1:不可点击*/
	@TableField(exist = false)
	private String btnFlg;
	/**系统自动识别 选中的tab 0:app端自动切换到上班Tab  1:app端自动切换到下班Tab*/
	@TableField(exist = false)
	private String showModel;
	/**说明文字1*/
	@TableField(exist = false)
	private String showExplain1;
	/**说明文字2*/
	@TableField(exist = false)
	private String showExplain2;
	/**说明文字3*/
	@TableField(exist = false)
	private String showExplain3;
	/**打卡按钮的间隔时长:分钟单位*/
	@TableField(exist = false)
	private Integer interval;

	/**日期列表**/
	@TableField(exist = false)
	private List<Date> dateList = Lists.newArrayList();
	@TableField(exist = false)
	private String outCompanyFlg;

	@TableField(exist = false)
	private AlterAttendance alterAttendance;
	@TableField(exist = false)
	private String departName;
	@TableField(exist = false)
	private String departId;

	@TableField(exist = false)
	private String updateByRealname;
	@TableField(exist = false)
	private String createByRealname;
	private String createBy;
	private String updateBy;
	@TableField(exist = false)
	private String createByUsername;

	private Date createTime;
	private Date updateTime;

	private String remarks;

}
